Computers and computer systems, such as enterprise servers, house many electronic devices, such as circuit boards, processors, memory devices, power supplies, and cooling fans, within a limited amount of space so spare inner space is generally minimal. As a result, in the limited spare space that does exist, tradeoffs have to be made based on the dimensions of various devices.
Various existing and new enterprise servers make use of high speed, volatile memory (e.g., dynamic random access memory (DRAM)) to hold operating instructions and data. Increasingly, these servers are also including large amounts of relatively inexpensive non-volatile memory devices, such as NAND flash memory, to store applications and/or data. However, many existing DRAM-based computer or servers are designed without the appropriate bus interfaces to support non-volatile (e.g., NAND flash) memory either directly or through storage bus interfaces such as SATA and SAS. Supporting such non-volatile memory devices may involve a costly and lengthy redesign of the computer or server. Similarly, most systems employing non-volatile memory devices cannot simply add volatile memory devices, e.g., due to different bus requirements, voltages, signaling, etc. As a result, significant changes to a computer or server physical architecture are needed to add non-volatile memory devices into an updated model of what was previously a volatile memory-based system and vice-versa. This is further complicated due to the limited space (e.g., motherboard surface space) need for additional components or devices so it is not always possible to merely add additional memory modules.
Moreover, in many instances it is undesirable to replace computers or servers (or their components such as a motherboard) due to cost considerations, downtime, and/or other factors. Thus, any solution that adds non-volatile memory devices should preferably provide backward compatibility for legacy or existing computer or server systems.
In view of the above, increasing the capacity and storage performance of existing servers, storage or cloud computing solutions, as well as designing faster and more efficient enterprise server and storage solutions has been difficult, if not impossible. Consequently, a method and apparatus is needed that allows users to significantly increase the capacity and storage performance of existing servers, storage or cloud computing solutions as well allowing for new designs that are no longer constrained by standard hard drive space requirements.